package com.haojin.java1;

import org.junit.Test;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;

/**
 * @author .29.
 * @create 2022-04-05 20:41
 */
/*
一、集合框架的概述

1.集合、数组都是对多个数据进行存储造作的结构，简称java容器。
说明：此时的存储主要说明内存层面的存储，不涉及到持久化的存储（.txt,.jpg,.avi,数据库中）

2.1数组在存储多个数据方面的特点：
     >一旦初始化以后，其长度就确认了
     >数组一旦定义好，其元素的类型也就确定了，我们只能操作指定类型的数据
     比如：String[] arr;int[] arr1;Object[] arr2;
2.2数组在存储多个数据方面的缺点：
     >一旦初始化以后，其长度就不可修改。
     >数组中提供的方法非常有限，对于添加、删除、插入数据等操作，非常不便，同时效率不高
     >获取数组中实际元素的个数，数组没有现成的属性或者方法可用
     >数组存储数据的特点：有序、可重复，对于无序、不可重复的需求，数组无法满足。

二、集合框架
     Collection接口：单列集合，用来存储一个一个的对象
          |---List接口：存储有序的，可重复的数据 -->“动态”数组
               |-ArrayList、LinkedList、Vector
          |---Set接口：存储无序的、不可重复的数据
               |-HashSet、LinkedHashSet、TreeSet

     Map接口：双列集合，用来存储一对一对（key -- value）的数据
               |-HashMap,LinkedHashMap,TreeMap,HashTable,Properties

三、Collection接口中的方法的使用
 */
public class CollectionTest {
    @Test
    public void test1(){
        Collection coll = new ArrayList();
        //add():将元素e添加到集合coll中
        coll.add("AA");
        coll.add("BB");
        coll.add(123);//自动装箱
        coll.add(new Date());

        //size():获取添加的元素个数
        System.out.println(coll.size());//4

        //addAll(Collection coll1):将coll1集合中的元素添加到当前的集合中
        Collection coll1 = new ArrayList();
        coll1.add("456");
        coll1.add("CC");
        coll1.add("HH");
        coll.addAll(coll1);
        System.out.println(coll);

        //clear():清空集合元素
        coll.clear();

        //isEmpty():判断当前集合是否为空
        System.out.println(coll.isEmpty());


    }
}
